home *** CD-ROM | disk | FTP | other *** search
- /*
- * This file contains a 'dummy' filesystem; which does almost nothing. In fact
- * all it does do is to allow changes to call the 'real' m_root.
- * Why have such a thing you may ask? Two reasons, firstly if a minix filesystem
- * on the disk is inaccesible for some reason (directory increment too big for
- * example) then minixfs shouldn't touch it; however we don't want it sent to
- * other filesystems where it could get trashed. The second case is for physical
- * partitions: minit has to have some way of finding out the currently invalid
- * partition's parameters.
- */
-
- #include "minixfs.h"
- #include "proto.h"
- #include "global.h"
-
- FILESYS dummy_filesys = {
- (FILESYS *) 0,0,
- m_root, no_lookup, no_creat, no_getdev,
- no_getxattr, no_chattr, no_chown,
- no_chmode, no_mkdir,
- no_rmdir, no_remove, no_getname,
- no_rename, no_opendir, no_readdir,
- no_rewinddir, no_closedir,
- no_pathconf, no_dfree,
- no_wlabel, no_rlabel,
- no_symlink, no_readlink,
- no_hardlink, dummy_fscntl, m_dskchng,
- m_release,m_dupcookie
- };
-
- long no_lookup(dir,name,entry)
- fcookie *dir;
- char *name;
- fcookie *entry;
- {
- return EFILNF;
- }
-
- long no_creat(dir,name,mode,attr,entry)
- fcookie *dir;
- char *name;
- unsigned mode;
- int attr;
- fcookie *entry;
- {
- return EACCDN;
- }
-
- DEVDRV * no_getdev(file,special)
- fcookie *file;
- long *special;
- {
- *special=EINVFN;
- return NULL;
- }
-
- long no_getxattr(file,xattr)
- fcookie *file;
- XATTR *xattr;
- {
- return EACCDN;
- }
-
- long no_chown(file, uid , gid)
- fcookie *file;
- int uid,gid;
- {
- return EINVFN;
- }
-
- long no_chmode(file, mode)
- fcookie *file;
- unsigned mode;
- {
- return EINVFN;
- }
-
-
- long no_mkdir(dir,name,mode)
- fcookie *dir;
- char *name;
- unsigned mode;
- {
- return EACCDN;
- }
-
- long no_rmdir(dir,name)
- fcookie *dir;
- char *name;
- {
- return EACCDN;
- }
-
- long no_remove(dir,name)
- fcookie *dir;
- char *name;
- {
- return EACCDN;
- }
-
- long no_getname(root,dir,pathname,length)
- fcookie *root,*dir;
- char *pathname;
- short length;
- {
- return EACCDN;
- }
-
-
- long no_opendir(dirh,flag)
- DIR *dirh;
- int flag;
- {
- return 0;
- }
-
- long no_readdir(dirh,name,namelen,fc)
- DIR *dirh;
- char *name;
- int namelen;
- fcookie *fc;
- {
- return ENMFIL;
- }
-
- long no_rewinddir(dirh)
- DIR *dirh;
- {
- return 0;
- }
-
- long no_closedir(dirh)
- DIR *dirh;
- {
- return 0;
- }
-
- long no_rlabel(dir,name,namelen)
- fcookie *dir;
- char *name;
- int namelen;
- {
- return EFILNF;
- }
-
- long no_wlabel(dir,name)
- fcookie *dir;
- char *name;
- {
- return EACCDN;
- }
-
- long no_dfree(dir,buffer)
- fcookie *dir;
- long *buffer;
- {
- return EINVFN;
- }
-
- long dummy_fscntl(dir,name,cmd,arg)
- fcookie *dir;
- char *name;
- int cmd;
- long arg;
- {
- if(cmd!=MFS_PHYS) return EINVFN;
- return m_fscntl(dir,name,cmd,arg);
- }
-
- long no_rename(olddir,oldname,newdir,newname)
- fcookie *olddir;
- char *oldname;
- fcookie *newdir;
- char *newname;
- {
- return EACCDN;
- }
-
- long no_hardlink(fromdir,fromname,todir,toname)
- fcookie *fromdir;
- char *fromname;
- fcookie *todir;
- char *toname;
- {
- return EINVFN;
- }
-
- long no_symlink(dir,name,to)
- fcookie *dir;
- char *name;
- char *to;
- {
- return EINVFN;
- }
-
- long no_readlink(file,buf,len)
- fcookie *file;
- char *buf;
- int len;
- {
- return EINVFN;
- }
-
- long no_chattr(file,attr)
- fcookie *file;
- int attr;
- {
- return EFILNF;
- }
-
- long no_pathconf(dir,which)
- fcookie *dir;
- int which;
- {
- return EINVFN;
- }
-